package com.xxxx;

import com.xxxx.config.LoadBalancerConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

// 开启 Eureka Client 注解，目前版本如果配置了 Eureka 注册中心，默认会开启该注解
// @EnableEurekaClient
@SpringBootApplication   // 三合一注解
@LoadBalancerClients(defaultConfiguration = {LoadBalancerConfig.class})
public class ServiceConsumerApplication {

    // 设置负载均衡策略，方式一：全局方式（这种设置方式只能在旧版的spring cloud中）
//    @Bean
//    public RandomRule randomRule() {
//        return new RandomRule();   //  RandomRule() 随机方式 的负载均衡策略， 默认的负载均衡策略是 轮询策略 RoundRobinRule()
//    }

    @Bean
//    @LoadBalanced   // 开启Ribbon负载均衡器注解，在这里加上 @LoadBalanced 注解，让 RestTemplate 有了负载均衡的能力
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    public static void main(String[] args) {
        SpringApplication.run(ServiceConsumerApplication.class, args);
    }
}
